<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <!-- 颜色分类, 按照红色(0)、白色(1)、蓝色(2)顺序排列

```
给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ，原地对它们进行排序，使得相同颜色的元素相邻，并按照红色、白色、蓝色顺序排列。
我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。
必须在不使用库内置的 sort 函数的情况下解决这个问题。
 -->
</head>
<body>
  <script>
//  0、 1 和 2 分别表示红色、白色和蓝色。
// 我们可以设置 3 个指针，一个指向头部，一个指向尾部，还有一个指向当前遍历的元素。
// 我们从头部开始遍历数组，如果遇到 0（红色）就把它放到头部指针的位置，
// 如果遇到 2（蓝色）就把它放到尾部指针的位置。
// 如果遇到 1（白色），就跳过它，继续遍历。
var sortColors = function(nums) {
    let i = 0, num = nums.length;
    // 循环执行 nums 的长度 - 2 的数量
    while(i < num) {
        if(nums[i] == 0) {
            nums.splice(i++, 1);
            nums.unshift(0);
        } else if (nums[i] == 2) {
            nums.splice(i, 1);
            nums.push(2)
            num--;
        } else i++
    }
    return nums;
};
console.log(sortColors([2,0,2,1,1,0]));
  </script>
</body>
</html>